
Security News
TypeScript is Porting Its Compiler to Go for 10x Faster Builds
TypeScript is porting its compiler to Go, delivering 10x faster builds, lower memory usage, and improved editor performance for a smoother developer experience.
@turf/points-within-polygon
Advanced tools
@turf/points-within-polygon is a module from the Turf.js library that allows you to determine which points from a set of points fall within a given polygon. This is particularly useful for geospatial analysis, such as finding all locations within a specific area.
Filter Points Within a Polygon
This feature allows you to filter a collection of points to find those that fall within a specified polygon. The code sample demonstrates creating a set of points and a polygon, then using the `pointsWithinPolygon` function to find which points are inside the polygon.
const turf = require('@turf/turf');
const points = turf.featureCollection([
turf.point([0, 0]),
turf.point([1, 1]),
turf.point([2, 2]),
turf.point([3, 3])
]);
const polygon = turf.polygon([[
[0, 0], [0, 2], [2, 2], [2, 0], [0, 0]
]]);
const pointsWithin = turf.pointsWithinPolygon(points, polygon);
console.log(pointsWithin);
Leaflet is a popular open-source JavaScript library for mobile-friendly interactive maps. It provides similar functionality for geospatial analysis, including the ability to check if points fall within a polygon. However, Leaflet is more focused on rendering maps and providing interactive features, whereas @turf/points-within-polygon is more focused on geospatial calculations.
Geolib is a library for geospatial calculations in JavaScript. It offers a variety of functions for distance calculations, bounding boxes, and point-in-polygon checks. While it provides similar functionality to @turf/points-within-polygon, Geolib is a more general-purpose library for geospatial calculations, whereas @turf/points-within-polygon is specifically designed for working with points and polygons.
Finds Points that fall within (Multi)Polygon(s).
Parameters
points
(Feauture | FeatureCollection<Point>) Points as input searchpolygons
(FeatureCollection | Geoemtry | Feature<(Polygon | MultiPolygon)>) Points must be within these (Multi)Polygon(s)Examples
var points = turf.points([
[-46.6318, -23.5523],
[-46.6246, -23.5325],
[-46.6062, -23.5513],
[-46.663, -23.554],
[-46.643, -23.557]
]);
var searchWithin = turf.polygon([[
[-46.653,-23.543],
[-46.634,-23.5346],
[-46.613,-23.543],
[-46.614,-23.559],
[-46.631,-23.567],
[-46.653,-23.560],
[-46.653,-23.543]
]]);
var ptsWithin = turf.pointsWithinPolygon(points, searchWithin);
//addToMap
var addToMap = [points, searchWithin, ptsWithin]
turf.featureEach(ptsWithin, function (currentFeature) {
currentFeature.properties['marker-size'] = 'large';
currentFeature.properties['marker-color'] = '#000';
});
Returns FeatureCollection<Point> points that land within at least one polygon
This module is part of the Turfjs project, an open source module collection dedicated to geographic algorithms. It is maintained in the Turfjs/turf repository, where you can create PRs and issues.
Install this module individually:
$ npm install @turf/points-within-polygon
Or install the Turf module that includes it as a function:
$ npm install @turf/turf
FAQs
turf points-within-polygon module
The npm package @turf/points-within-polygon receives a total of 780,452 weekly downloads. As such, @turf/points-within-polygon popularity was classified as popular.
We found that @turf/points-within-polygon demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
TypeScript is porting its compiler to Go, delivering 10x faster builds, lower memory usage, and improved editor performance for a smoother developer experience.
Research
Security News
The Socket Research Team has discovered six new malicious npm packages linked to North Korea’s Lazarus Group, designed to steal credentials and deploy backdoors.
Security News
Socket CEO Feross Aboukhadijeh discusses the open web, open source security, and how Socket tackles software supply chain attacks on The Pair Program podcast.